iT邦幫忙

2023 iThome 鐵人賽

DAY 24
0

以下的內容都是我個人的理解,如果有理解錯誤或有造成誤解的地方在麻煩請糾正

而這邊就是是主要要談得以下概念首先不外乎就是要講要怎麼使用 Ray Cluster ,另外要怎麼設定才能指定特定的Function 放到 Ray Cluster 分散 就是接下來要談的內容

Talk About Ray Cluster

首先當然要對於 Ray Cluster 來先說明,對 Ray Ecosystem 而言,主要就是有一個負責管理 Task 跟 Node 的 Head Node,還有幫忙處理事情的一堆 Workers ,首先第一個問題

  1. 怎麼把 function push 到 ray cluster 給不同的 node 來執行呢?

    就是要在最前面 設定 ray.init 的部分下需要 remote host ,然後 connect 一直在的狀況下,就會把很多Ray task 丟到 remote host 上面處理並且分散出去。

  2. 為什麼 Worker 上面的 Environment 怎麼去執行 Ray task ?

    其實以 worker 跟 head node 的執行環境,基本上的 package 也都要設定為一樣的,因為這樣才有辦法 import package in the program, 所以為了要讓 script 的執行可以順利找到 package ,所以就要設定workdir ,這樣才會讓 package path 固定,才不至於會變成 not found function.

How to build the connection with Ray Head and How it works ?

這邊Ray 的部分主要就要先建立 Connection ,然後建立 Connection 到 Ray head 之後,就可以把需要執行的東西丟到 Ray Cluster 去執行計算,所以在下面的 code 第一個就是表示建立 ray connection。

  • Create Connection
import ray

ray.init() # 預設是會起 localhost 的 ray cluster

ray.init("ray://ray-head-svc:10001/", workdir="./") # 這是指向到 Ray Cluster Head 的上面

在 ray.init 的部分除了建立 connection 之外,同時也可以加入 workdir ,這點需要加入是因為分散的時候可能會也會需要使用local file ,所以這邊也是 import 進來,不然會導致後面執行的時候找不到 function

How we should do setup for assigned function by parallel processing on Ray?

然後第二個 code 就是當程式執行到 remote 的話,就會丟進去 Ray remote去執行

  • Ray remote function
@ray.remote
def DoSomethingOnRay():
	print("do something")

DoSomethingOnRay.remote() # 簡單地分開去執行 DoSomethingOnRay

@ray.remote
def GetSomethingOnRay(i):
	return f"get {i}"

getSomething = []
for i in range(10):
   getSomething.append(GetSomethingOnRay.remote(i)) # 用 list 去接 return 結果

resultList = ray.get(getSomething) # 等待 ray 執行的結果

這邊用兩種方法來說明,前面那個比較簡單就是單純呼叫 ray 去執行,而後面的那個就是把參數帶去 ray cluster 去進算,然後最後的 ray.get 的部分就是等待 ray clsuter 把所有的function 執行完然後再回傳到 resultList


上一篇
{Day 23: Kuberay = Kubernetes and Ray}
下一篇
{Day 25: cdk8s to develop k8s component}
系列文
Don't be a Machine Learning Engineer30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言